C#でPDFを圧縮する方法

How to Compress PDFs

This article was translated from English: Does it need improvement?
Translated
View the article in English

PDF圧縮は、PDF(Portable Document Format)ドキュメントのファイルサイズを縮小するプロセスを指します。 この圧縮は、特に大きなドキュメントやイメージが豊富なドキュメントを扱う際に、PDFファイルをストレージ、共有、送信のためにより管理しやすくするために適用されます。

画像は通常、PDFファイルサイズのかなりの部分を占めるのは、一般的にテキストや他のコンテンツに比べてサイズが大きいためです。 IronPdfは、PDFに埋め込まれた画像を圧縮し、PDF内のテーブルデータによく伴うツリー構造を減少させるPDF圧縮機能を提供します。

クイックスタート: IronPDFでPDFファイルを圧縮する

IronPDFの強力な圧縮ツールを使用して、PDFファイルサイズを簡単に削減できます。 PdfDocument.FromFileを用いてPDFをロードし、デフォルトオプションを使用してCompressメソッドで圧縮を適用し、最適化されたPDFを保存してください。 この簡単で迅速なプロセスは、品質を保ちながらファイルサイズの大幅な削減を保証し、.NET C#で効率的なドキュメント管理を求める開発者に最適です。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. Copy and run this code snippet.

    PdfDocument.FromFile("input.pdf").CompressImages(40).SaveAs("compressed.pdf");
  3. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

ミニマルワークフロー (5ステップ)

  1. NuGetからPDF圧縮用のC#ライブラリをダウンロードする
  2. 既存のPDFをインポートするか新しいPDFをレンダリングする
  3. CompressImagesメソッドを使用してPDFの画像サイズを縮小する
  4. CompressStructTreeメソッドを用いてPDFのツリー構造を最小化する
  5. 圧縮されたPDFドキュメントをエクスポートする


画像圧縮の例

JPEGのリサイズの仕方は、100%の品質ではほとんど劣化がなく、1%になると非常に低品質の出力画像になります。

  • 90%以上: 高品質と見なされる
  • 80%-90%: 中品質と見なされる
  • 70%-80%: 低品質と見なされる

さまざまな価値を試し、品質とファイルサイズのトレードオフを理解してください。入力画像の種類によって品質の低下が異なり、ある画像では他の画像よりも明らかな鮮明度の低下が見られることを注意してください。

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-image.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

// Compress images in the PDF
pdf.CompressImages(40);

pdf.SaveAs("compressed.pdf");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")

' Compress images in the PDF
pdf.CompressImages(40)

pdf.SaveAs("compressed.pdf")
$vbLabelText   $csharpLabel

画像圧縮 - サイズ比較

39.24%削減!!

class="content-img-align-center">
class="center-image-wrapper"> 画像圧縮 - サイズ比較

画像圧縮オプションの理解

私たちの画像圧縮オプションの詳細を掘り下げていきましょう:

ShrinkImage: この機能は、PDFドキュメント内の可視サイズに基づいて画像の解像度を縮小します。 こうすることで、効率的なストレージと送信のために画像のサイズと品質を大幅に削減します。

HighQualitySubsampling: この設定は、画像圧縮に使用されるクロマサブサンプリング方法を決定します。 「True」を選択すると、4:4:4クロマサブサンプリングが使用され、完全な色細部でより高品質の画像が得られます。 逆に、「False」を選択すると、4:1:1クロマサブサンプリングが使用され、色合いの詳細の一部を犠牲にして画像サイズをさらに削減します。

クロマサブサンプリングは、画像の視覚品質を保持しながら、画像を表現するために必要なデータを削減することを目的としたデジタル画像圧縮の重要な技術です。 これにより、明度情報(輝度)の完全な解像度を維持しつつ、色情報(クロマナンス)の解像度を選択的に削減します。

「4:4:4」クロマサブサンプリングでは、各ピクセルが自身の色情報を保持し、色の詳細の損失がありません。 逆に、「4:1:1」クロマサブサンプリングでは、色情報が低解像度でサブサンプリングされ、色の詳細が減少しますが、ファイルサイズも削減されます。


ツリー構造圧縮の例

この機能は、Chromeエンジンによって作成されたツリー構造を最小化することでPDFのサイズを縮小するために使用されます。HTMLに広範なテーブルデータを含むPDFをChromeエンジンで生成した場合にうまく機能します。 一部のPDFレンダリングエンジンは、このツリー構造がないPDFを出力するかもしれず、その場合、この機能は効果的ではありません。

このツリー構造を削除することで、一部のPDFではテキストのハイライトや抽出がうまく機能しないかもしれません。

Let's use the PDF with table data to test the CompressStructTree method.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-tree-structure.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("table.pdf");

// Compress tree structure in PDF
pdf.CompressStructTree();

pdf.SaveAs("compressedTable.pdf");
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("table.pdf")

' Compress tree structure in PDF
pdf.CompressStructTree()

pdf.SaveAs("compressedTable.pdf")
$vbLabelText   $csharpLabel

ツリー構造圧縮 - サイズ比較

67.90%削減!! より大きなテーブルPDFでこの割合は増加します。

class="content-img-align-center">
class="center-image-wrapper"> ツリー構造圧縮 - サイズ比較

高度な圧縮方法

IronPdfには、画像圧縮とツリー構造圧縮の両方を設定できるCompressメソッドがあり、ドキュメントの圧縮をこれまで以上に簡単にします。

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-compress.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

CompressionOptions compressionOptions = new CompressionOptions();

// Configure image compression
compressionOptions.CompressImages = true;
compressionOptions.JpegQuality = 80;
compressionOptions.HighQualityImageSubsampling = true;
compressionOptions.ShrinkImages = true;

// Configure tree structure compression
compressionOptions.RemoveStructureTree = true;

pdf.Compress(compressionOptions);

pdf.SaveAs("compressed.pdf");
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

Private compressionOptions As New CompressionOptions()

' Configure image compression
compressionOptions.CompressImages = True
compressionOptions.JpegQuality = 80
compressionOptions.HighQualityImageSubsampling = True
compressionOptions.ShrinkImages = True

' Configure tree structure compression
compressionOptions.RemoveStructureTree = True

pdf.Compress(compressionOptions)

pdf.SaveAs("compressed.pdf")
$vbLabelText   $csharpLabel

利用可能なオプションを探索する

  • CompressImages: ドキュメント内の既存の画像がJPGエンコーディングを使用して圧縮されるかどうかを制御します。 デフォルトはfalseです。
  • RemoveStructureTree: 構造ツリーを削除すると、ドキュメントによって使用されるディスクスペースが大幅に削減される可能性があります。 ただし、特に複雑なドキュメントでは、テキスト選択に悪影響を与える可能性があります。
  • JpegQuality: 画像圧縮時に使用するJPEG品質(1から100)を指定します。 デフォルトは42です。
  • HighQualityImageSubsampling: 高画質画像を取得するために4:4:4クロマサブサンプリングを使用するか(true)または画像サイズをさらに縮小するために4:1:1クロマサブサンプリングを使用するか(false)を決定します。
  • ShrinkImages: 画像解像度を縮小することで、ドキュメント内の画像サイズと品質を大幅に縮小することができます。

次に何ができるのかを見てみましょうか? こちらのチュートリアルページをご覧ください: 追加機能

よくある質問

.NET C#でPDF画像を圧縮するにはどうすればよいですか?

.NET C#でPDF画像を圧縮するためにIronPDFを使用できます。このライブラリは、JPEG品質を調整し、異なるクロマサブサンプリングオプションを選択して画像サイズを効果的に縮小するCompressImagesというメソッドを提供します。

.NETライブラリを使用したPDF圧縮の利点は何ですか?

IronPDFのような.NETライブラリを使用してPDF圧縮を行うことで、C#アプリケーションに直接PDFサイズ削減を統合でき、ファイルサイズを縮小することで文書管理が向上し、保存や共有が容易になります。

データを含む大規模なPDFのサイズを減らすにはどうすればよいですか?

広範なテーブルデータを含むPDFのサイズを縮小するには、IronPDFのCompressStructTreeメソッドを使用できます。このメソッドは、PDFのツリー構造を最小化し、ファイルサイズを大幅に削減しつつ、文書の整合性を保持します。

PDF圧縮における画像品質調整のオプションは何ですか?

IronPDFは、圧縮中の画像品質を調整するオプションを提供します。たとえば、1から100までの範囲のJpegQualityパラメータがあります。値が高いほど画像の詳細を保持し、低いほど圧縮が増加します。

PDF画像圧縮中にクロマサブサンプリングを制御できますか?

はい、IronPDFでは、PDF画像圧縮中にクロマサブサンプリングをHighQualitySubsampling設定で制御できます。これにより、より高い画像品質(4:4:4)またはさらに大きなサイズ削減(4:1:1)を選べます。

PDFの構造ツリーを削除する潜在的な欠点は何ですか?

IronPDFの圧縮機能を使用してPDFの構造ツリーを削除することで、ファイルサイズを大幅に削減できますが、複雑な文書におけるテキスト選択と抽出に影響を与える可能性があるため、このトレードオフを考慮することが重要です。

PDFの画像およびツリー構造の圧縮をどのように構成しますか?

IronPDFは、PDFの画像およびツリー構造圧縮を構成できるCompressメソッドを提供します。このメソッドは、品質とファイルサイズの間で必要なバランスを達成するために設定を調整する柔軟性を提供します。

.NET C#でPDF圧縮を開始するためにどの手順を踏むべきですか?

.NET C#でPDF圧縮を開始するには、NuGetからIronPDFライブラリをダウンロードし、既存のPDFをインポートするか新しいものをレンダリングし、CompressImagesやCompressStructTreeのようなメソッドを使用して効果的にファイルサイズを削減します。

IronPDF は PDF を圧縮する際に .NET 10 と完全に互換性がありますか?

はい。IronPDFは.NET 10と完全に互換性があります。.NET 10プロジェクトで、 CompressImagesCompressStructTreeCompressメソッドCompressionOptionsを使用)などの同じメソッドを使用してPDFを圧縮することで、一貫した結果とパフォーマンスを実現できます。サポートされているランタイムバージョンの中で、.NET 10もサポートされています。⁠([ironpdf.com](https://ironpdf.com/?utm_source=openai))

Chaknith Bin
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeに取り組んでいます。彼はC#と.NETの深い専門知識を持ち、ソフトウェアの改善や顧客サポートに貢献しています。ユーザーとの対話から得られる洞察が、より良い製品、ドキュメント、および全体的な経験に寄与しています。
によってレビュー

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'name'

Filename: sections/author_component.php

Line Number: 70

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 70
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

">

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'title'

Filename: sections/author_component.php

Line Number: 84

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 84
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'comment'

Filename: sections/author_component.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once